import java.util.Random;

public class CalculationSystemV02 {
    public static void main(String[] args) {
        // 创建Random对象用于生成随机数
        Random random = new Random();
        
        // 程序标题
        System.out.println("加减法口算练习系统-v0.2\n");
        System.out.println("50道100以内的加减法口算练习题（每行显示3个算式）：\n");
        
        // 用于跟踪当前是第几题
        int count = 1;
        
        // 生成50道练习题
        while (count <= 50) {
            // 每行显示3个算式
            for (int j = 0; j < 3 && count <= 50; j++) {
                // 生成随机数，确保加法和不超过100，减法差不小于0
                int num1, num2, result;
                String expression;
                
                // 随机选择加法(0)或减法(1)
                int operation = random.nextInt(2);
                
                if (operation == 0) {
                    // 加法：确保和不超过100
                    // 先生成第一个数，范围1-99
                    num1 = random.nextInt(99) + 1;
                    // 第二个数的范围为1到(100-num1)，确保和不超过100
                    num2 = random.nextInt(100 - num1) + 1;
                    result = num1 + num2;
                    expression = count + ". " + num1 + " + " + num2 + " = " + result;
                } else {
                    // 减法：确保差不小于0
                    // 先生成较大的数作为被减数，范围1-100
                    num1 = random.nextInt(100) + 1;
                    // 减数的范围为1到num1，确保差不小于0
                    num2 = random.nextInt(num1) + 1;
                    result = num1 - num2;
                    expression = count + ". " + num1 + " - " + num2 + " = " + result;
                }
                
                // 格式化输出，确保每行整齐显示
                // 使用String.format控制宽度，每个算式固定宽度为25个字符
                System.out.printf("%-25s", expression);
                count++;
            }
            // 每行结束后换行
            System.out.println();
        }
        
        // 关于实现的说明
        System.out.println("\n实现说明：");
        System.out.println("1. 每个算式都显示答案");
        System.out.println("2. 加法算式的和控制在100以内");
        System.out.println("3. 减法算式的差确保为非负数");
        System.out.println("4. 每行整齐地显示3个算式，使用格式化输出保持对齐");
    }
}